var imgGroupByPositionUrl = basePath + '/content/json/imgGroup/position';
var imgGroupByIdUrl = basePath + "/content/json/imgGroup/id";
var addUpdateImgGroupUrl = basePath + "/content/json/imgGroup/addUpdate";

var dataDataGrid;
var confirmDialog;
$(function(){
	qiniuUpload();
    initPosition();
    initCity();
});

/**
 * 初始图组位置
 */
function initPosition(){
    $.ajax({
        url: basePath + "/content/dict/json/dictData/dictCode?code=img_group",
        type: 'GET',
        dataType: 'json',
        error : function(data) {
            $.messager.progress('close');
            $.messager.alert('系统提示', data.msg, 'error');
        },
        success: function (data) {
        	var currId = $("#dataTypeAllMenu").find("li.dict-cur").find('a').attr("id");
            var html = '';
            data.forEach(function(item,index){
            	var clasz="";
            	if(!currId && index == 0){
            		clasz="class=\"dict-cur\"";
            		currId = item.dictDataKey;
            	}else {
            		if(item.id == currId) clasz="class=\"dict-cur\"";
            	}
                html += '<li ' + clasz + '><a href="javascript:void(0)" id="' + item.dictDataKey + '" onclick="linkImgGroup(this)" class="tdictType_link">'+item.dictDataValue+'</a></li>'
            });
            initImgGroup(currId);
            $("#dataTypeAllMenu").html(html);
        }
    });

}

/**
 * 菜单数据表
 */
function initImgGroup(position){
	$("#addImgGroup #position").val(position);
    dataDataGrid = $('#dataGrid').datagrid({
        url : imgGroupByPositionUrl,
        fit : true,
        fitColumns : true,
        border : true,
        singleSelect : true,
        pagination : true,
        idField : 'id',
        pageSize : 10,
        autoRowHeight : 800,
        pageList : [ 10 ],
        nowrap : true,
        striped : true,
        toolbar:'#toolbar',
        queryParams : {
            position: position 
        },
        columns : [ [{
	        	field : 'action',
	        	title : '操作',
	        	align : 'center',
	        	formatter : function(value, row, index) {
	        		return $.formatString('<button  type="button" class="btn btn-warning btn-xs" style="margin:4px 4px;" onclick="updateImgGroup(\'{0}\');">编辑</button>', row.id);
	        	}
			}, {
            	field : 'id',
            	align : 'center',
            	title : '<b>编号</b>'
            }, {
				field : 'shelves',
				align : 'center',
				title : '<b>状态</b>',
            	formatter:function(value,row,index){
                    return shelvesFormat(value);
                }
            }, {
            	field : 'title',
            	align : 'center',
            	title : '<b>标题描述</b>'
            }, {
            	field : 'imgUrl',
            	align : 'center',
            	title : '<b>图片</b>',
            	formatter : function(v, row, index) {
    				if(v) {
    					return "<img style='width:15px;height:15px;' src='" + imgUrl + v + "'>";
    				}else {
    					return "<span color='gray'>无</span>";
    				}
    			}
            }, {
            	field : 'linkUrl',
            	align : 'center',
            	title : '<b>链接地址</b>',
            	formatter : function(v) {
            		return "<a href=\"" + v + "\" target='_blank'>查看</a>";
            	}
            }, {
            	field : 'city',
            	align : 'center',
            	title : '<b>城市</b>',
            	formatter : function(value) {
    				return dictDataFormat('city',value);
    			}
            }, {
            	field : 'creater',
            	align : 'center',
            	title : '<b>创建人</b>'
            }, {
            	field : 'createTime',
            	align : 'center',
            	title : '<b>创建时间</b>', 
            	formatter : function(value) {
    				return getTime(value, "yyyy-MM-dd hh:mm");
    			}
            }
        ]]
    });
}

/**
 * 清空表单
 */
var cleanFormPanel=function(formId){
	$('#' + formId)[0].reset();
	$('#' + formId + " #imgUrl").val(null);
	$('#' + formId + " #id").val(null);
}

function addImgGroup(){
	$("#regMT-uploadPic").attr({"src": basePath+"/images/m-xiaolin.png"});
	$('#addImgGroup').dialog({
		title : $("#addImgGroupForm #id").val() == '' ? '新增图组' : '修改图组',
		modal : true,
		width : 600,
		top : 100,
		draggable : true,
		resizable : true,
		buttons : '#btns',
		onClose : function() {
			cleanFormPanel("addImgGroupForm");
		}
	}).show();
}

function updateImgGroup(id) {
	$.ajax({
 		url : imgGroupByIdUrl,
 		type : "post",
 		data : {
 			id : id
 		},
 		dataType : "json",
 		async : false,
 		success : function(data) {
 			addImgGroup();
			$("#addImgGroupForm #id").val(data.id);
			$("#addImgGroupForm #city").val(data.city);
			$("#addImgGroupForm #imgUrl").val(data.imgUrl);
			$("#addImgGroupForm #linkUrl").val(data.linkUrl);
			$("#addImgGroupForm #position").val(data.position);
			$("#addImgGroupForm #shelves").val(data.shelves);
			$("#addImgGroupForm #title").val(data.title);
			if(data.imgUrl != null)$("#regMT-uploadPic").attr({"src": imgUrl + data.imgUrl+"?v=" + new Date().getTime(), "data-state": "yes"});
 		}
 	});
}


function commitImgGroup(){
	var imgUrl = $("#imgUrl").val();
	if(imgUrl.length == 0) {
		$.messager.alert('系统提示', '请上传图片', 'error');
		return;
	}
	$.messager.confirm('系统提示', '确认提交吗！', function(r) {
		if (r){
			$.ajax({
				url : addUpdateImgGroupUrl,
				type : 'POST',
				error : function() {
					$.messager.progress('close');
					$.messager.alert('系统提示', '操作异常', 'error');
				},
				data : $('#addImgGroupForm').serialize(),
				success : function(data) {
					$.messager.progress('close');
					if (data.code == '000') {
						$.messager.alert('系统提示', $("#addImgGroupForm #id").val() == '' ? '新增成功' : '修改成功', 'info');
						initImgGroup($("#dataTypeAllMenu").find("li.dict-cur >a").attr('id'));
						cleanFormPanel("addImgGroupForm");
						$('#addImgGroup').dialog('close')
					} else {
						$.messager.alert('系统提示', $("#addImgGroupForm #id").val() == '' ? '新增失败' : '修改失败', 'warning');
					}
				}
			});
		}
	});
}

function linkImgGroup(thiz) {
	var lic = $(thiz.closest('li'));
	if(!lic.hasClass('dict-cur')) {
		initImgGroup(thiz.id);
		lic.addClass("dict-cur").siblings().removeClass("dict-cur");
	}
}


//上传图片
function uploadPic(){
	//上传按钮
	document.querySelector('#regMT-uploadInput').addEventListener('change', function () {
		var that=this;
		var imgWrapObj;
		lrz(that.files[0],{
			width:1024
		})
    	//rst格式
    	//rst.origin:图片信息，如大小、日期等
    	//rst.base64:生成后的图片base64，后端可以处理此字符串为图片
    	//rst.base64Len:生成后的图片的大小，后端可以通过此值来校验是否传输完整
        .then(function (rst) {
        	var fileName = rst.origin.name;
        	var extName = fileName.substring(fileName.lastIndexOf("."), fileName.length)
        	if(!(".jpg|.png|.bmp|.jpeg".toUpperCase().indexOf(extName)==-1)){
        		alert("只允许上传jpg、png、bmp、jpeg格式的图片");
        		return false;
        	}
        	extName = extName.substring(1, extName.length);
        	$.ajax({
        		type:"post",
        		url: basePath + "/attachment/course/upload/img",
        		data: {
        			extName: extName,
        			imgdata: rst.base64
        		},
        		async: false,
        		cache: false,
        		dataType:"json",
        		success:function(result){
        			result=result||{};
        			if(result.code == "000"){
        				$("#regMT-uploadPic").attr({"src": imgUrl + result.data+"?v=" + new Date().getTime(), "data-state": "yes"});
        				$("#imgUrl").val(result.data)
        			}else{
        				alert(result.msg);
        			}
        		},
        		error:function(){
        			alert("网络错误！");
        		},
        		beforeSend:function(){
        		},
        		complete:function(){
        			
        		}
        	})
        })
        .always(function () {
            // 不管是成功失败，都会执行
        });
	})
}

function qiniuUpload() {
	 var uploader = Qiniu.uploader({
        runtimes: 'html5,flash,html4',    //上传模式,依次退化
        browse_button: 'regMT-uploadInput',       //上传选择的点选按钮，**必需**
        uptoken_url: basePath + '/qiniu/uptoken',            //Ajax请求upToken的Url，**强烈建议设置**（服务端提供）
        // uptoken : '', //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
        unique_names: true, // 默认 false，key为文件名。若开启该选项，SDK为自动生成上传成功后的key（文件名）。
        // save_key: true,   // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`，则开启，SDK会忽略对key的处理
        domain: 'http://opxre3wd6.bkt.clouddn.com',   //bucket 域名，下载资源时用到，**必需**
        get_new_uptoken: false,  //设置上传文件的时候是否每次都重新获取新的token
        container: 'regMT-headPic',           //上传区域DOM ID，默认是browser_button的父元素，
        max_file_size: '100mb',           //最大文件体积限制
        flash_swf_url: 'js/plupload/Moxie.swf',  //引入flash,相对路径
        max_retries: 3,                   //上传失败最大重试次数
        dragdrop: true,                   //开启可拖曳上传
        drop_element: 'regMT-headPic',        //拖曳上传区域元素的ID，拖曳文件或文件夹后可触发上传
        chunk_size: '4mb',                //分块上传时，每片的体积
        auto_start: true,                 //选择文件后自动上传，若关闭需要自己绑定事件触发上传
        init: {
            'FilesAdded': function(up, files) {
                plupload.each(files, function(file) {
                    // 文件添加进队列后,处理相关的事情
                });
            },
            'BeforeUpload': function(up, file) {
                   // 每个文件上传前,处理相关的事情
            },
            'UploadProgress': function(up, file) {
                   // 每个文件上传时,处理相关的事情
            },
            'FileUploaded': function(up, file, info) {
                   // 每个文件上传成功后,处理相关的事情
                   // 其中 info 是文件上传成功后，服务端返回的json，形式如
                   // {
                   //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
                   //    "key": "gogopher.jpg"
                   //  }
                   // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html

                   var domain = up.getOption('domain');
                   var res = JSON.parse(info.response);
                   var sourceLink = domain + "/" + res.key; //获取上传成功后的文件的Url
                   $("#regMT-uploadPic").attr({"src": sourceLink + "?v=" + new Date().getTime(), "data-state": "yes"});
                   $("#imgUrl").val(res.key)
   				$("#courseImg").val(sourceLink);
            },
            'Error': function(up, err, errTip) {
                   //上传出错时,处理相关的事情
            },
            'UploadComplete': function() {
                   //队列文件处理完毕后,处理相关的事情
            },
            'Key': function(up, file) {
                // 若想在前端对每个文件的key进行个性化处理，可以配置该函数
                // 该配置必须要在 unique_names: false , save_key: false 时才生效

                var key = "";
                // do something with key here
                return key
            }
        }
    });
}
